﻿/*
 * KLF Headless Browser
 * Written by Kris Oye <kristianoye@gmail.com>
 * Copyright (C) 2011-2012.  All rights reserved.
 */
namespace KLF.Lib.Browser.DOM.CSS
{
    #region Using Statements

    using System;
    using KLF.Lib.Browser.DOM.View;

    #endregion

    /// <summary>
    /// This interface represents a CSS view. The getComputedStyle method 
    /// provides a read only access to the computed values of an element.
    /// 
    /// The expectation is that an instance of the ViewCSS interface can be 
    /// obtained by using binding-specific casting methods on an instance of
    /// the AbstractView interface.
    /// 
    /// Since a computed style is related to an Element node, if this element
    /// is removed from the document, the associated CSSStyleDeclaration and 
    /// CSSValue related to this declaration are no longer valid.
    /// </summary>
    interface IViewCSS : IAbstractView
    {
        #region DOM Level 2 Style Compliance

        /// <summary>
        /// This method is used to get the computed style as it is 
        /// defined in [CSS2]. 
        /// </summary>
        /// 
        /// <param name="elt">The element whose style is to be computed. 
        /// This parameter cannot be null.</param>
        /// 
        /// <param name="pseudoElt">The pseudo-element or null if none.</param>
        /// 
        /// <returns>The computed style. The CSSStyleDeclaration is read-only
        /// and contains only absolute values.</returns>
        CSSStyleDeclaration getComputedStyle(Element elt, string pseudoElt);

        #endregion
    }
}
